#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <vector>

using namespace std;

int main()
{
	float x, y, vx, vy, g;
	x = 150;
	y = 20;
	vx = 8;
	vy = 0;
	g = 0.5;
	vector<COLORREF> color_list{ BLUE, RED, GREEN, CYAN, MAGENTA, BROWN };
	int i = 0;
	initgraph(600, 600);
	while (1)
	{
		cleardevice();
		vy = vy + g;
		x = x + vx;
		y = y + vy;
		if (y >= 580)
		{
			vx = 0.98*vx;
			vy = -0.95*vy;
			int clo_id = i % 6;
			i++;
			setfillcolor(color_list[clo_id]);
		}
		if (y > 580)
		{
			y = 580;
		}
		if (x >= 580)
		{
			vx = -vx;

			int clo_id = i % 6;
			i++;
			setfillcolor(color_list[clo_id]);
		}
		if (x <= 20)
		{
			vx = -vx;
			int clo_id = i % 6;
			i++;
			setfillcolor(color_list[clo_id]);
		}
		fillcircle(x, y, 20);
		Sleep(10);
	}
	_getch();
	closegraph();
	return 0;
}